package com.sxt;

import java.awt.*;

public class Bg {

    //关卡数
    static int level = 1;

    //目标得分
    int goal = level * 5;

    //总分
    static int count = 0;

    //药水数量
    static int waterNum = 3;

    //药水状态,默认F，T表示正在使用。
    static boolean waterFlag = false;

    //开始时间
    long startTime;

    //结束时间
    long endTime;

    //药水价格
    int price = (int) (Math.random()*10);

    //是否进入商店 F：不购买
    boolean shop = false;

    Image bg = Toolkit.getDefaultToolkit().getImage("C://Users//admin//IdeaProjects//The Gold Miner//imgs//bg.jpg");
    Image bg1 = Toolkit.getDefaultToolkit().getImage("C://Users//admin//IdeaProjects//The Gold Miner//imgs//bg1.jpg");
    Image usaqi = Toolkit.getDefaultToolkit().getImage("C://Users//admin//IdeaProjects//The Gold Miner//imgs//usaqi.gif");
    Image water = Toolkit.getDefaultToolkit().getImage("C://Users//admin//IdeaProjects//The Gold Miner//imgs//water.png");

    //绘制
    void paintSelf(Graphics g){
        g.drawImage(bg1,0,0,null);
        g.drawImage(bg,0,200,null);

        switch(GameWin.state){
            case 0:
                drawWord(g, 80, Color.green, "准备开始", 200, 400);
                break;
            case 1:
                g.drawImage(usaqi,310,60,null);
                drawWord(g, 30, Color.black, "积分"+count, 30, 150);
                //药水组件
                g.drawImage(water,450,60,null);
                drawWord(g,30,Color.black,"*"+waterNum,510,90);
                //关卡数
                drawWord(g,20,Color.black,"第"+level+"关",30,80);
                //目标积分
                drawWord(g,30,Color.black,"目标："+goal,30,110);
                //时间组件
                endTime = System.currentTimeMillis();
                long tim = 20 - (endTime - startTime)/1000;
                drawWord(g,30,Color.black,"时间"+(tim > 0 ? tim : 0),520,150);
                break;
            case 2:
                g.drawImage(water,300,400,null);
                drawWord(g,30,Color.black,"价格"+price,300,500);
                drawWord(g,30,Color.black,"是否购买？",300,550);
                if(shop){
                    count = count  - price;
                    waterNum++;
                    shop = false;
                    GameWin.state = 1;
                    startTime = System.currentTimeMillis();
                }
                break;
            case 3:
                drawWord(g,80,Color.cyan,"失败",250,350);
                drawWord(g,80,Color.cyan,"积分:"+count,200,450);
                break;
            case 4:
                drawWord(g,80,Color.red,"成功",250,350);
                drawWord(g,80,Color.red,"积分:"+count,200,450);
                break;
            default:
        }

    }

    //t倒计时完成，f正在倒计时
    boolean gameTime() {
        long tim = (endTime - startTime) / 1000;
        if (tim > 20) {
            return true;
        }
        return false;
    }

    //重置元素
    void reGame(){
        //关卡数
        level = 1;

        //目标得分
        goal = level * 5;

        //总分
        count = 0;

        //药水数量
        waterNum = 3;

        //药水状态,默认F，T表示正在使用。
        waterFlag = false;
    }

    //绘制字符串[封装方法]
    public static void drawWord(Graphics g, int size, Color color, String str , int x , int y){
        g.setColor(color);
        g.setFont(new Font("仿宋",Font.BOLD,size));
        g.drawString(str,x,y);
    }
}
